from flask_sqlalchemy import SQLAlchemy
from flask import Flask, render_template
from config import APPCONFIG
# 这个py是来初始化flask和flask_sqlalchemy的


db = SQLAlchemy()


# 这个存放成全局变量，下面函数中的db.init_app(app)可以做到retrun的效果，别的py就可以调用db了
# 不直接return是因为已经return了一个东西

def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(APPCONFIG.get(config_name))

    from app.views.index import index_blu
    app.register_blueprint(index_blu)
    # from app.views.admin import admin_blu
    # app.register_blueprint(admin_blu)

    # 注册蓝图
    # 这样也能间接运行蓝图中的程序了（app.views）

    db.init_app(app)
    # mail.init_app(app)

    # @app.errorhandler(404)
    # @app.errorhandler(500)
    # def error_404(e):
    #     return render_template("common/404.html")

    return app
    # return app给main.py运行程序